In [117]:
import numpy as np 
import pandas as pd 
import matplotlib.pyplot as plt 
import seaborn as sns 
import scipy.stats as s
import matplotlib.patches as mpatches
In [118]:
def printMaximumValues(maxDay,result):
    print("Maximalny 15-minutovy vykon namerany dna {} : {} W".format(str(maxDay.index[0])[:11],str(round(np.amax(maxDay.values),2))))
    print("Maximalny vykon bol dosiahnuty v case {}".format(str(maxDay.columns[result[1][0]])))
    print("\n\n")

def UsageInDayGraph(meteringPointName,df_X,TplotColor='blue'):

        
    result = np.where(df_X.values == np.amax(df_X.values))
    maxDay = df_X.iloc[result[0][0]:result[0][0]+1]
    result = np.where(maxDay.values == np.amax(maxDay.values))
    
    ax = df_X.T.plot(figsize=(20,8), legend=False, color=TplotColor, alpha=0.2)
    # if maxDayPlot:
    #     ax = maxDay.T.plot(figsize=(20,8), legend=False, color='black',ax=ax)
    
    plt.title("Summárny denný výkon (W) pre "+meteringPointName)
    plt.ylabel('Sumárny výkon')
    plt.xlabel('Denný priebeh')
    black_patch = mpatches.Patch(color='black', label='Maximalny denny pribeh vykonu')
    plt.legend(handles=[black_patch], prop={'size': 20})
    # if saveImg:
    #     plt.savefig('./plots/'+meteringPointName+'_KW_frequency_daySum_plot.png')
    plt.show()
    printMaximumValues(maxDay,result)

ACROS

In [119]:
def loadParsedData():
    df = pd.read_csv("./data_spotreba/arcos_final.csv", delimiter = ",")
    df['Date'] =  pd.to_datetime(df['Date'], format='%d.%m.%Y')
    df = df.fillna(0)
    return df
df = loadParsedData()
In [120]:
mps = list(df['MeteringPoint'].unique())
In [121]:
for mp in mps:
    df = loadParsedData()
    df = df[df['MeteringPoint'] == mp]
    df = df.drop(columns=['MeteringPoint'])
    dfGrouped = df.groupby('Date').sum()
    UsageInDayGraph(mp,dfGrouped)
Maximalny 15-minutovy vykon namerany dna 2019-06-26  : 209.5 W
Maximalny vykon bol dosiahnuty v case 15:45



Maximalny 15-minutovy vykon namerany dna 2020-01-07  : 356.21 W
Maximalny vykon bol dosiahnuty v case 11:00



Maximalny 15-minutovy vykon namerany dna 2019-07-01  : 174.16 W
Maximalny vykon bol dosiahnuty v case 14:30



Maximalny 15-minutovy vykon namerany dna 2020-02-14  : 335.68 W
Maximalny vykon bol dosiahnuty v case 15:30



Maximalny 15-minutovy vykon namerany dna 2020-02-19  : 120.08 W
Maximalny vykon bol dosiahnuty v case 14:45



Maximalny 15-minutovy vykon namerany dna 2019-08-12  : 137.86 W
Maximalny vykon bol dosiahnuty v case 15:30



Maximalny 15-minutovy vykon namerany dna 2020-01-07  : 204.18 W
Maximalny vykon bol dosiahnuty v case 11:45



Maximalny 15-minutovy vykon namerany dna 2020-01-08  : 420.2 W
Maximalny vykon bol dosiahnuty v case 10:15



Maximalny 15-minutovy vykon namerany dna 2020-01-08  : 39.6 W
Maximalny vykon bol dosiahnuty v case 12:15



Maximalny 15-minutovy vykon namerany dna 2020-01-03  : 82.15 W
Maximalny vykon bol dosiahnuty v case 11:45



Maximalny 15-minutovy vykon namerany dna 2019-06-25  : 122.24 W
Maximalny vykon bol dosiahnuty v case 11:15



In [122]:
df = loadParsedData()
df = df.drop(columns=['MeteringPoint'])
dfGrouped = df.groupby('Date').sum()
UsageInDayGraph("celkove",dfGrouped)
Maximalny 15-minutovy vykon namerany dna 2020-02-28  : 1601.42 W
Maximalny vykon bol dosiahnuty v case 10:15



CENTRAL BA

In [123]:
def getTrafo(x,df):
    trafoName = df[df['MeteringPoint'] == str(x)]['trafo'].values[0]
    return trafoName

df = pd.read_csv("./data_spotreba/central_ba.csv", delimiter = ";")
df = df.drop(columns="Source")
trafos_id = pd.read_excel("./data_spotreba/central_trafo.xlsx", index_col=None)  
df['MeteringPoint'] = df['MeteringPoint'].apply(lambda x : getTrafo(x,trafos_id))
df['Date'] =  pd.to_datetime(df['Date'], format='%d.%m.%Y')
df = df.fillna(0)
In [124]:
mps = list(df['MeteringPoint'].unique())
for mp in mps:

    df = pd.read_csv("./data_spotreba/central_ba.csv", delimiter = ";")
    df = df.drop(columns="Source")
    trafos_id = pd.read_excel("./data_spotreba/central_trafo.xlsx", index_col=None)  
    df['MeteringPoint'] = df['MeteringPoint'].apply(lambda x : getTrafo(x,trafos_id))
    df['Date'] =  pd.to_datetime(df['Date'], format='%d.%m.%Y')
    df = df.fillna(0)

    df = df[df['MeteringPoint'] == mp]
    df = df.drop(columns=['MeteringPoint'])
    dfGrouped = df.groupby('Date').sum()
    UsageInDayGraph(mp,dfGrouped)
Maximalny 15-minutovy vykon namerany dna 2020-01-14  : 853.08 W
Maximalny vykon bol dosiahnuty v case 14:00



Maximalny 15-minutovy vykon namerany dna 2019-06-27  : 1424.02 W
Maximalny vykon bol dosiahnuty v case 09:45



In [125]:
df = pd.read_csv("./data_spotreba/central_ba.csv", delimiter = ";")
df = df.drop(columns="Source")
trafos_id = pd.read_excel("./data_spotreba/central_trafo.xlsx", index_col=None)  
df['MeteringPoint'] = df['MeteringPoint'].apply(lambda x : getTrafo(x,trafos_id))
df['Date'] =  pd.to_datetime(df['Date'], format='%d.%m.%Y')
df = df.fillna(0)

df = df.drop(columns=['MeteringPoint'])
dfGrouped = df.groupby('Date').sum()
UsageInDayGraph("Celkove",dfGrouped)
Maximalny 15-minutovy vykon namerany dna 2019-06-27  : 2127.84 W
Maximalny vykon bol dosiahnuty v case 09:45



OC Central

In [126]:
def createDictonary():
    mp = pd.read_csv("data_spotreba/data_oc_central/Metering_Points_Central.csv", delimiter = ",")
    mpDic = dict()
    for index, row in mp.iterrows():
        mpDic[row['Metering Code']] = row['koncentrator']
    return mpDic



def loadCentral():
    dfs = []
    mpDic = createDictonary();
    for i in range(2,12):
        dfs.append(pd.read_csv("data_spotreba/data_oc_central/"+str(i)+".csv",delimiter = ";"))
    df = pd.concat(dfs)
    df = df.drop(columns="Source")
    df['MeteringPoint'] = df['MeteringPoint'].apply(lambda x : mpDic[x])
    df['Date'] =  pd.to_datetime(df['Date'], format='%d.%m.%Y')
    df = df.fillna(0)
    return df
In [127]:
df = loadCentral()
In [128]:
df = loadCentral()
mps = list(df['MeteringPoint'].unique())
for mp in mps:
    df = loadCentral()
    df = df[df['MeteringPoint'] == mp]
    df = df.drop(columns=['MeteringPoint'])
    dfGrouped_central = df.groupby('Date').sum()
    UsageInDayGraph(mp,dfGrouped_central)
Maximalny 15-minutovy vykon namerany dna 2019-11-29  : 850.14 W
Maximalny vykon bol dosiahnuty v case 12:15



Maximalny 15-minutovy vykon namerany dna 2019-06-27  : 1424.02 W
Maximalny vykon bol dosiahnuty v case 09:45



In [129]:
dfC = loadCentral()
dfC = dfC.drop(columns=['MeteringPoint'])
dfGroupedXX = dfC.groupby('Date').sum()
UsageInDayGraph("Celkove",dfGroupedXX)
Maximalny 15-minutovy vykon namerany dna 2019-06-27  : 2127.84 W
Maximalny vykon bol dosiahnuty v case 09:45



SNT

In [130]:
def loadDataSNT():
    df = pd.read_csv("data_spotreba/data_snt/data.csv",delimiter=";") 
    return df
df = loadDataSNT()
In [131]:
dfGrouped = df.groupby('Date').sum()
dfGrouped = dfGrouped.drop(columns={"week"})
UsageInDayGraph("S&T",dfGrouped)
Maximalny 15-minutovy vykon namerany dna 2018-10-28 : 87.98 W
Maximalny vykon bol dosiahnuty v case 2:45:0



TRAFO?

In [132]:
eicToCustomerDict = {
    "24ZSLZTR1600002D00000000000000000" : "Johra Mont",
"24ZSLZTR1600003B00000000000000000" : "Martin Zdinak",
"24ZSLZTR1600004900000000000000000" : "Ubytovna",
"24ZSLZTR1600005700000000000000000" : "Metal Container",
"24ZSLZTR6300001X00000000000000000" : "Tipo",
"24ZSLZTR6300003T00000000000000000" : "Juva",
"24ZSLZTR6300004R00000000000000000" : "Tomi",
"24ZSLZTR6300006N00000000000000000" : "Autogaraze",
"24ZSLZTR6300009Y00000000000000000" : "Amas",
"24ZSLZTR6300010W00000000000000000" :  "Matmi",
"24ZSLZTR6300011U00000000000000000" : "TMC",
"24ZSLZTR6300013Q00000000000000000" : "Vermex",
"24ZSLZTR6300014O00000000000000000" : "Drustav",
"24ZSLZTR6300016K00000000000000000" : "Duklastav",
"24ZSLZTR6300017I00000000000000000" : "MU",
"24ZSLZTR6300020T00000000000000000" : "Protan",
"24ZSLZTR6300021R00000000000000000" : "Zuda",
}

customerTrafoNumIdDict = {
    "Johra Mont" : "TR160",
    "Martin Zdinak" : "TR160",
    "Ubytovna" : "TR160",
    "Metal Container" : "TR160"
}

def loadTrafo():
    dfs = []
    mpDic = createDictonary();
    for i in range(2,13):
        dfs.append(pd.read_csv("data_spotreba/data_trafo/"+str(i)+".csv",delimiter = ";"))
    df = pd.concat(dfs)
    df = df.drop(columns="Source")
    df['MeteringPoint'] = df['MeteringPoint'].apply(lambda x : eicToCustomerDict[x])
    df['Trafo'] = df['MeteringPoint'].apply(lambda x:"TR630" if x not in customerTrafoNumIdDict else "TR160" )
    return df
df = loadTrafo()
In [133]:
df = loadTrafo()
mps = list(df['MeteringPoint'].unique())
for mp in mps:
    df = loadTrafo()
    df = df[df['MeteringPoint'] == mp]
    df = df.drop(columns=['MeteringPoint'])
    dfGrouped_central = df.groupby('Date').sum()
    UsageInDayGraph(mp,dfGrouped_central)
Maximalny 15-minutovy vykon namerany dna 12.11.2019 : 37.61 W
Maximalny vykon bol dosiahnuty v case 09:00



Maximalny 15-minutovy vykon namerany dna 25.09.2019 : 43.52 W
Maximalny vykon bol dosiahnuty v case 07:00



Maximalny 15-minutovy vykon namerany dna 27.12.2019 : 0.91 W
Maximalny vykon bol dosiahnuty v case 19:30



Maximalny 15-minutovy vykon namerany dna 07.10.2019 : 76.77 W
Maximalny vykon bol dosiahnuty v case 09:00



Maximalny 15-minutovy vykon namerany dna 21.11.2019 : 31.29 W
Maximalny vykon bol dosiahnuty v case 12:45



Maximalny 15-minutovy vykon namerany dna 14.03.2019 : 6.13 W
Maximalny vykon bol dosiahnuty v case 15:30



Maximalny 15-minutovy vykon namerany dna 07.11.2019 : 9.26 W
Maximalny vykon bol dosiahnuty v case 14:00



Maximalny 15-minutovy vykon namerany dna 05.12.2019 : 62.76 W
Maximalny vykon bol dosiahnuty v case 13:00



Maximalny 15-minutovy vykon namerany dna 30.12.2019 : 3.46 W
Maximalny vykon bol dosiahnuty v case 16:45



Maximalny 15-minutovy vykon namerany dna 03.06.2019 : 5.14 W
Maximalny vykon bol dosiahnuty v case 10:45



Maximalny 15-minutovy vykon namerany dna 06.05.2019 : 10.77 W
Maximalny vykon bol dosiahnuty v case 05:30



Maximalny 15-minutovy vykon namerany dna 05.02.2019 : 2.88 W
Maximalny vykon bol dosiahnuty v case 21:45



Maximalny 15-minutovy vykon namerany dna 18.12.2019 : 11.8 W
Maximalny vykon bol dosiahnuty v case 14:30



Maximalny 15-minutovy vykon namerany dna 08.02.2019 : 24.14 W
Maximalny vykon bol dosiahnuty v case 05:00



Maximalny 15-minutovy vykon namerany dna 29.04.2019 : 3.37 W
Maximalny vykon bol dosiahnuty v case 13:45



Maximalny 15-minutovy vykon namerany dna 03.05.2019 : 6.4 W
Maximalny vykon bol dosiahnuty v case 13:15



Maximalny 15-minutovy vykon namerany dna 10.04.2019 : 1.72 W
Maximalny vykon bol dosiahnuty v case 13:30



In [134]:
df = loadTrafo()
df = df.drop(columns=['MeteringPoint'])
dfGrouped_central = df.groupby('Date').sum()
UsageInDayGraph("Celkove",dfGrouped_central)
Maximalny 15-minutovy vykon namerany dna 02.12.2019 : 209.74 W
Maximalny vykon bol dosiahnuty v case 08:15



In [ ]: